/**题号：2225
 * 给你一个整数数组 matches 其中 matches[i] = [winneri, loseri] 表示在一场比赛中 winneri 击败了 loseri 。
返回一个长度为 2 的列表 answer ：
    answer[0] 是所有 没有 输掉任何比赛的玩家列表。
    answer[1] 是所有恰好输掉 一场 比赛的玩家列表。
    两个列表中的值都应该按 递增 顺序返回。
 */


/**
 * 输入：matches = [[1,3],[2,3],[3,6],[5,6],[5,7],[4,5],[4,8],[4,9],[10,4],[10,9]]
输出：[[1,2,10],[4,5,7,8]]
解释：
玩家 1、2 和 10 都没有输掉任何比赛。
玩家 4、5、7 和 8 每个都输掉一场比赛。
玩家 3、6 和 9 每个都输掉两场比赛。
因此，answer[0] = [1,2,10] 和 answer[1] = [4,5,7,8] 。
 */

const findWinners = (matches) => {
    let winObj = {}
    let oneObj = {}
    let winers = []
    let oneLose = []
    matches.forEach((item,index) => {
        const winer = item[0]
        const loser = item[1]
        if (!(winer in winObj)){
            winObj[winer] = 1
        }
        if(!(loser in oneObj)){
            oneObj[loser] = 1
        }else{
            oneObj[loser] += 1
        }
    })
    Object.keys(winObj).forEach(key => {
        if (!(key in oneObj)){
            if(winers.length){
                key > winers[winers.length - 1] ? winers.push(parseInt(key)) : winers.unshift(parseInt(key))
            }else
                winers.push(parseInt(key))
        }
    })
    Object.keys(oneObj).forEach(key => {
        if (oneObj[key] === 1){
            if (oneLose.length) {
                key > oneLose[oneLose.length - 1] ? oneLose.push(parseInt(key)) : oneLose.unshift(parseInt(key))
            } else
                oneLose.push(parseInt(key))
        }
    })
}

findWinners([[1, 3], [2, 3], [3, 6], [5, 6], [5, 7], [4, 5], [4, 8], [4, 9], [10, 4], [10, 9]])